﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Data.Objects;

namespace medder
{

    public class Valid
    {
        public static ObjectSet<User> users;
        public static ObjectSet<Profile> profiles;
       

        private static void LoadUsers()
        {
            MedBaseEntities med = new MedBaseEntities();
            users = med.Users;
        }

        private static void LoadProfiles()
        {
            MedBaseEntities med = new MedBaseEntities();
            profiles = med.Profiles;
        }

     
        public static bool IsOnlyLetters(string text)
        {
            text=text.Trim();
            if (text.Equals(String.Empty))
                return false;
            string pattern = "[а-яА-Я -]*";
            Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
            Match res = rgx.Match(text);
            string resa  = res.Value;
            if (resa.Equals(text))
                return true;
            return false;
        }

        public static bool CheckPassport(string passport, Label label)
        {
            LoadUsers();
            if (passport.Length < 10)
            {
                PassportErrorMessage("Проверьте правильность ввода паспортных данных", label);
                label.Focus();
                return false;
            }
            else
            {
                if (users.Where(x => x.Passport == passport).Count() == 0)
                    return true;
                else
                {
                    PassportErrorMessage("Пользователь с такими паспортными данными уже существует", label);
                    label.Focus();
                    return false;
                }

            }
        }

        public static void PassportErrorMessage(string text, Label label)
        {
            label.Text = "Проверьте правильность ввода паспортных данных";
        }

        private static bool CheckInt(string text)
        {
            try
            {
                int integer = Convert.ToInt32(text);
                return true;
            }
            catch
            {
                return false;
            }

        }

        public static bool CheckProfileId(string text)
        {
            if (text.Equals(string.Empty))
                return false;
            else
            {
                if (CheckInt(text))
                {
                    LoadProfiles();
                    int profId = Convert.ToInt32(text);
                    if (profiles.Where(x => x.ProfId == profId).Count() == 0)
                        return true;
                    else
                        return false;
                }
                else
                    return false;
            }
        }

       
    }
}
